const db = require('./config/database')

async function updateUserTable () {
  try {
    console.log('🔄 开始更新用户表结构...')

    // 添加role字段
    try {
      await db.query(`
        ALTER TABLE users 
        ADD COLUMN role ENUM('user', 'admin', 'moderator') DEFAULT 'user' 
        AFTER nickname
      `)
      console.log('✅ role字段添加成功')
    } catch (e) {
      console.log('⚠️ role字段已存在或添加失败:', e.message)
    }

    // 添加status字段
    try {
      await db.query(`
        ALTER TABLE users 
        ADD COLUMN status ENUM('active', 'inactive', 'banned', 'suspended') DEFAULT 'active' 
        AFTER role
      `)
      console.log('✅ status字段添加成功')
    } catch (e) {
      console.log('⚠️ status字段已存在或添加失败:', e.message)
    }

    // 添加level字段
    try {
      await db.query(`
        ALTER TABLE users 
        ADD COLUMN level INT DEFAULT 1 
        AFTER status
      `)
      console.log('✅ level字段添加成功')
    } catch (e) {
      console.log('⚠️ level字段已存在或添加失败:', e.message)
    }

    // 添加last_login_time字段
    try {
      await db.query(`
        ALTER TABLE users 
        ADD COLUMN last_login_time TIMESTAMP NULL 
        AFTER level
      `)
      console.log('✅ last_login_time字段添加成功')
    } catch (e) {
      console.log('⚠️ last_login_time字段已存在或添加失败:', e.message)
    }

    console.log('🎉 用户表结构更新完成！')
    process.exit(0)
  } catch (error) {
    console.error('❌ 更新用户表失败:', error)
    process.exit(1)
  }
}

updateUserTable()
